/** Copyright (c) 2012, peter.ducai@gmail.com
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*     * Redistributions of source code must retain the above copyright
*       notice, this list of conditions and the following disclaimer.
*     * Redistributions in binary form must reproduce the above copyright
*       notice, this list of conditions and the following disclaimer in the
*       documentation and/or other materials provided with the distribution.
*     * Neither the name of the Peter Ducai nor the
*       names of its contributors may be used to endorse or promote products
*       derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL PETER "daemonna" DUCAI BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package com.daemonna.fluentlee_core.cli;

import com.daemonna.fluentlee_core.pools.data_pool;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.xml.sax.SAXException;

/*
 * @author peter 'daemonna' ducai
 * @author peter.ducai@gmail.com 
 * @author http://code.google.com/p/fluentlee/
 */
public class cmdline_parser {

    /**
     * load parameters from commandline and process them
     *
     * @param args command args
     */
    public void process_params(String[] args) throws org.apache.commons.cli.ParseException, ParserConfigurationException, SAXException, XPathExpressionException, IOException {


        Options opt = new Options();

        opt.addOption("h", false, "Print help for this application");
        opt.addOption("run_only", true, "run only RUN jobs from schedule.xml.. set 'true'");
        opt.addOption("sql_only", true, "run only SQL jobs from schedule.xml.. set 'true'");
        opt.addOption("single_suite", true, "set to scheduler to run only single suite. Suite name as param");
        opt.addOption("dry_run", true, "dry-run will only read jobs but will NOT execute them");

        BasicParser parser = new BasicParser();
        CommandLine cl = parser.parse(opt, args);

        if (cl.hasOption('h')) {
            HelpFormatter f = new HelpFormatter();
            f.printHelp("option value", opt);
        } else {

            if (cl.hasOption("sql_only")) {

            }
            
            if (cl.hasOption("dry_run")) {
                if("true".equals(cl.getOptionValue("dry_run")) || "false".equals(cl.getOptionValue("dry_run"))){
                    data_pool.getInstance().dry_run = Boolean.parseBoolean(cl.getOptionValue("dry_run"));
                }
            }
        }
    }
}
